home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1998 October / Macworld (1998-10).dmg / Shareware World / Info / For Developers / Drop UNIX 1.3.1 / DropUNIX Documentation next >
Encoding:
Text File  |  1998-07-15  |  7.2 KB  |  89 lines  |  [TEXT/ttxt]

  1. DropUNIX 1.3
  2. ============
  3. By: Ryan Davis, Zen Spider Software
  4.  
  5. http://www.ZenSpider.com/
  6. mailto://zss@ZenSpider.com
  7.  
  8. (this document, while fine by itself, is browsable using EasyView)
  9. (HTML version coming RSN (real soon now))
  10.  
  11. Why did I write DropUNIX?
  12. -------------------------
  13. Basically I was tired of writing support for some sort of user interface for UNIX ports. What it really comes down to is I dislike both Symantec's and MetroWerk's cconsole call. I thought, "Mac users don't DO paths... It is even discouraged by Apple...". So I wrote this little library allowing people to convert their ugly console app with no real interface to at LEAST be drag & drop'able.
  14.  
  15. How does it work?
  16. -----------------
  17. To be honest... I wrote very little of this. It is a small conversion of Leonard Rosenthal's DropShell 2.0. What _I_ did was take his dropShell and have it process files in it's usual manner, except, rather than processing files right there, it creates a list of paths of the files dropped on the app. THEN when the processing is done, it passes the number of files+1 (argc) and the list of "command line arguments" (argv) to Main (notice the case).
  18.  
  19. How do I use it?
  20. ----------------
  21. Well, this is the nice part. So all you have to do is start a new application project (or duplicate the examples project) add all your unix files, the DropUNIX library, and the DropUNIX resources file. Don't forget to make the creator '∂UNX' (delta = option-d) or change the BNDL information in the resources. Finally, include "Main.h" in the same file that has your original main(...). It has a #define to convert your main(...) to Main(...), so linkage is automatic once you compile... Essentially, you never change your code!
  22.  
  23. Why should I use it?
  24. --------------------
  25. Simplicity for the first part. You don't have to do much of anything to get it up. Second, to maintain Apple's Human Interface Guidelines. I hate, You hate, we all hate icky GUI's! Last, but not least Productivity. By using DropUNIX you have increased your productivity by giving the port a new interface for free, and you have increased your users productivity by giving them an interface they can use intuitively...
  26.  
  27. Why shouldn't I use it?
  28. -----------------------
  29. Because a lot of unix applications change options through flags, if you require these flags to be settable, you are out of luck for now... Well, this isn't entirely true... If one REALLY needs a flag, say '-f' they can make a folder with the name '-f' and include that in the drop, then the flag would get there... It just seems wierd to have to do that....
  30.  
  31. Also, if ordering is important, then one would have to physically rename their files to be: 1.aFile, 2.anotherFile... etc, because the finder sends the files in alphabetical order...
  32.  
  33. How do I modify and recompile DropUNIX?
  34. ---------------------------------------
  35. DropUNIX was based entirely on DropShell 2.0, which is publically available on the 'net. All source is included in this distribution. If you would like to make modifications to this library and recompile it, go ahead. I've included all the DropShell files... (Comments denoting my changes are probably not complete)
  36.  
  37. OK, what does it cost me?
  38. -------------------------
  39. Previously all I asked for was email stating you downloaded it. I've gotten a little more sophisticated since then. Now I am requesting email answering the following questions:
  40.  
  41. 1) Do you plan to use this?
  42. 2) If so, what for?
  43. 3) How many people (estimated) will use your DropUNIX application?
  44. 4) Can I have a copy when you are done?
  45. 5) Where did you get this?
  46. 6) Features you'd like to see in the future version.
  47.  
  48. Even if you don't plan on using this (right away or ever) I'd like a piece of email from you so I know you downloaded it.
  49.  
  50. I'm requesting this information so that I can keep tabs on my users, and their needs. The more I can keep track, the more you can be sure you are up to date on everything. It will help me and you.
  51.  
  52. Legalese
  53. --------
  54.  
  55. The authors provide this source code as-is, with no warranties about its suitability for any purpose whatsoever. If you format your hard disk, or do anything else inconvenient, it’s not our fault.
  56.  
  57. Changes
  58. =======
  59.  
  60. Planned Changes:
  61. ----------------
  62. I was planning an intricate dialog box that could come up if the user held down the option key on launch that would allow someone to rearrange the order and add (via a button and then an entry dialog) other files or command options. I've decided against that. It just increases complexity, and frankly it isn't that usable.
  63.  
  64. Version 2.0 will have a very minimal text editor built in. If the user holds down the option key, then a text file with the dropped files will be displayed and editable. A user can then type anything possible, and select a menu command to "launch" the document. They will also be save'able, so that the user can create "launch lists" that can be double-clicked and will process the same data every time.
  65.  
  66. I'd like some input on this idea. Text editors aren't my forte, but it sounds like a very simple, and very usable idea. What do you think?
  67.  
  68. Version 1.3:
  69. ------------
  70. Fixed several bugs. Updated for CWPro3. The system took a lot of debugging and
  71. I doubt that it is complete. But the demo works out of the box, and several 
  72. people have started needing this version. Updated email & website.
  73.  
  74. Version 1.2:
  75. ------------
  76. Version 1.2 has been cleaned up quite a bit. It has been updated for CW8, and includes a CW8 project file. It has been enhanced to compile clean under Apple's Universal Headers 2.0+, and everything now compiles under C or C++, with or without precompiled headers. In other words, if I can compile it, you can compile it!
  77.  
  78. I changed the interface to SIOUX a bit. Before, when the program finished processing a drag & drop (or File->Open) event, SIOUX came up. Unfortunately, SIOUX deals with events wierd in the current mode it was in, and it was impossible to really interact with the underlying menus and such. Now, when SIOUX comes up, the menus and everything switch to match a normal SIOUX application; you can save, print, etc.
  79.  
  80. Support for Symantec is unchanged, and should be fine - provided it was fine in version 1.1. I refuse to directly support Symantec's compilers, but if you find something that doesn't work, I'd be happy to merge your changes into the official version.
  81.  
  82. Distribution no longer comes with a compiled library file, because you invariably are going to compile it differently, and I just saved you 30 seconds or so downloading!
  83.  
  84. My email address changed to zss@tssnet1.tss.net and my webpages are at http://tssnet1.tss.net/zss/
  85.  
  86. Version 1.1:
  87. ------------
  88. I waited for CW 6 before releasing this version. This release is a bug fix release. Using the new SIOUX library takes care of any errors that may have occurred with SIOUX (seems stable, and QC no longer reports any errors). I completely rewrote how data was passed around and removed all globals that I was using before. This was for two reasons: I hate globals, and there seemed to be a bug in malloc (I'm not sure if it was my bug, or a bug in MW's code) so all allocation is done with NewPtr & NewHandle. Last, but not least, changes have been made to accommodate THINK C's console. It behaves better, and seems to be a little more understandable. Again, documentation sucks, so does the interface... Both will come in version 2.0...
  89.